Existing search engines can provide mechanisms for performing an image search. In an image search, the user typically submits an image query that includes an image file (or a link to the image file) to the image search engine. The image search engine analyzes the content of the image, searches for other images that are similar to the image content, and presents the results to the user. However, most image search engines do not provide a mechanism through which a user can define a complex semantic representation of a target image to search.